// * JS 允许将 throw 与任何参数一起使用

// * 自定义错误类扩展 Error 类
class MyError extends Error {
	constructor(message) {
		super(message)
		this.name = this.constructor.name
	}
}

class ValidationError extends MyError {}

class PropertyRequiredError extends ValidationError {
	constructor(property) {
		super(`没有该属性：${property}`)
		this.property = property
	}
}

// name 属性是正确的
console.log(new PropertyRequiredError('field').name) // PropertyRequiredError
